Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2006
Тип роботи:
Звіт
Предмет:
Програмування
Група:
КІ-14

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи № 3 з програмування Тема: Структура даних „СТЕК” Мета роботи: Побудувати структуру даних “cтек” і дослідити динаміку вмісту стеку. Teoритичні відомості: Стеком називається впорядкований набір елементів у якому розміщення нових елементів і визначення існуючих виконується тільки з одного його кінця, який називається вершиною стеку. Завдання: Реалізуйте зв’язаний стек, у якому до опису стеку додана ще одна змінна EMPTY. Перепишіть основні операції роботи зі стеком і продемонструйте динаміку вмісту стеку. Програма: // інтерфес #include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <conio.h> #define infotype int #define printfspec "%d" struct node { infotype data; struct node *next; }new_node; typedef struct node *stack; void Init(stack *stack_top_ptr); int Empty(stack stack_top); void Push(stack *stack_top_ptr, infotype new_data); infotype Pop(stack *stack_top_ptr); void Print(stack stack_top); void main() { stack L2; infotype EMPTY; struct node a={6,NULL},b={1,&a},c={2,&b},*L1=&c; printf("pochatkovyiu steck;\n"); Print (L1); printf("Vvedit element jakyiy dodaty;\n"); scanf("%d",&EMPTY); Push (&L1,EMPTY); printf("pochatkovyiu steck (+) now_element;\n"); Print (L1); EMPTY=Pop (&L1); printf("pochatkovyiu steck (-) 1_element;\n"); Print (L1); Init(&L2); Push (&L2,EMPTY); printf("inshyiu steck;\n"); Print (L2); } // ініціалізація void Init(stack *stack_top_ptr) { *stack_top_ptr = NULL; return; } //перевірка чи стек порожній int Empty(stack stack_top) { return stack_top == NULL; } // додаваня в стек void Push(stack *stack_top_ptr, infotype new_data) { new_node.data = new_data; new_node.next = *stack_top_ptr; *stack_top_ptr = &new_node; return; } //вилучення зі стеку infotype Pop(stack *stack_top_ptr) { stack del_node; infotype del_data; if (Empty(*stack_top_ptr)) { printf(" Error : Stack is empty!\n"); return 0; } else { del_node = *stack_top_ptr; del_data = (*stack_top_ptr)->data; *stack_top_ptr = (*stack_top_ptr)->next; return del_data; }; } // роз друк стеку void Print(stack stack_top) { void PrintReverse(stack stack_top); printf("Elements of stack: "); if (Empty(stack_top)) printf("Stack is empty! \n"); else { PrintReverse(stack_top); printf("\n"); } return; } void PrintReverse(stack stack_top) { if (stack_top) { PrintReverse(stack_top->next); printf(printfspec,stack_top->data); } return; } Результати: Pochatkovyiu stack; Elements of stack; 612 Vvedit element jakyiu dodaty; 4 Pochatkovyiu stack <+> now_element; Elements of stack; 6124 Pochatkovyiu stack < - > 1_element; Elements of stack; 612 Inshyiu stack; Elements of stack; 4 Висновок: На дані лабораторні роботі ми навчилися будувати стек і відстежили динаміку змін вмісту стеку.
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини